# include <iostream>
# include <hash_map>
using namespace std;
//package symbols;
enum Type {Interger, Float, Bool, Image, Degree, Pair, String};

class Symbol {
	Type type;
	string value;
};

class Env {
typedef pair<string,Symbol> make_pair;
private: hash_map<string, Symbol>table;
protected: Env* prev;
public: Env (Env* p){
			table=hash_map<string, Symbol>::hash_map();
			prev=p;
		}
public: void put(string s, Type t){
			table.insert(make_pair(s, t));
		}
public: Symbol* get (string s){
			for (Env* e = this; e!=NULL; e=(*e).prev){
				Symbol* found;
				found = & (*((*e).table.find(s))).second;
				if ((*e).table.find(s)!=(*e).table.end())
					return found;
			}
			return NULL;
		}
};

